This invention relates to a generalized system for generating programs or apparatus using a process model which simulates human intelligence.
In the past numerous techniques have been developed for developing software for the control of a general purpose digital computer. These techniques have utilized a number of different program languages such as PASCAL, BASIC, FORTH, etc. Each of these languages is, in effect, a compiler for converting input from the operator to a machine readable set of instructions. Each language has its own particular virtues with respect to the operator and computer. For example, BASIC provides a very simple means for the operator of a computer to enter instructions for controlling the operation of the computer. On the other hand FORTH is not as simple for an operator to use and in fact requires an operator who is skilled in programming techniques. However, it is designed to conserve memory and operate rapidly on a data base. Other languages such as COBOL and FORTRAN are designed for specific applications such as business or scientific uses.
Given the existence of such computer languages, techniques have been developed by programmers for developing programs designed to perform specific functions. These programming techniques include, among others, development of internal error detection routines to assist in the debugging of the developed software. In the development of programming techniques programmers have learned to develop subroutines which consist of a set of instructions. These instructions are accessed from time to time by the program to perform a given routine or subroutine. By establishing such subroutines, memory is conserved because the same subroutine can be utilized to perform the same function at a number of different times during the execution of the program. Thus, only one subroutine needs to be written for a given task even though that task may be performed a number of different times during the course of the executing of a given program. No techniques, however, have been developed for systematically designing a program in completely modular form such that each subroutine within any program is so complete that it can be called upon by the general program to perform its function without the need to modify in any respect the function of subroutines. The failure to produce such a systematic technique in the past is due, at least in part, to the failure to understand the process model of human intelligence, and accordingly, it could not be simulated in a computer environment. The present invention is directed to solving the problem of providing an error free and efficient program system for the generation of software for controlling general purpose digital computers.
The present invention is also directed to providing an improved system for the design of apparatus utilizing a sequence of steps in its operation.